package com.deer.wms.base.system.dao;

import com.deer.wms.base.system.model.Item.ItemInfo;
import com.deer.wms.base.system.model.Item.ItemInfoCriteria;
import com.deer.wms.base.system.model.Item.ItemInfoDto;
import com.deer.wms.project.root.mapper.SuperMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author guo
 */
public interface ItemInfoMapper extends SuperMapper<ItemInfo> {

    /**
     * 按照条件criteria查询物料
     * @param criteria criteria
     * @return List<ItemInfoDto>
     */
    List<ItemInfoDto> findList(ItemInfoCriteria criteria);

    /**
     * 按照物料名称查询
     * @param itemName 物料名称
     * @return List<ItemInfo>
     */
    List<ItemInfo> findByName(@Param("itemName")String itemName);

    /**
     * 按照物料编码查询
     * @param itemCode 物料编码
     * @return List<ItemInfo>
     */
    List<ItemInfo> findByCode(@Param("itemCode")String itemCode);

    /**
     * 按照物料类型查询物料
     * @param itemTypeId 物料类型ID
     * @return List<ItemInfoDto>
     */
    List<ItemInfoDto> itemInfoFindByItemTypeId(@Param("itemTypeId")Integer itemTypeId);

    /**
     * 按照物料编码删除
     * @param itemCode 物料编码
     */
    void deleteByCode(@Param("itemCode")String itemCode);

    long findCount(ItemInfoCriteria criteria);
}